package yc.bluetooth.libvoice.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TimeUtil {

    /**
     * 将时间戳转成时分秒
     * @param time
     * @return
     */
    public static String timeToFormatNoYear(long time){
        //long timeStamp = System.currentTimeMillis();  //获取当前时间戳,也可以是你自已给的一个随机的或是别人给你的时间戳(一定是long型的数据)
        SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss");//这个是你要转成后的时间的格式 yyyy-MM-dd
        String sd = sdf.format(new Date(time));   // 时间戳转换成时间
        return sd;
    }

    /**
     * 获取时间差  \天\时\分\秒
     */
    //转换函数，可以封装成公用方法
    public static String longTimeToDay(String startTime,String endTime){
        //时间格式
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //转换成date类型
        Date start = null;
        Date end = null;
        try {
            start = sdf.parse(startTime);
            end= sdf.parse(endTime);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //获取毫秒数
        Long startLong = start.getTime();
        Long endLong = end.getTime();
        //计算时间差,单位毫秒
        Long ms = endLong-startLong;

        Integer ss = 1000;
        Integer mi = ss * 60;
        Integer hh = mi * 60;
        Integer dd = hh * 24;

        Long day = ms / dd;
        Long hour = (ms - day * dd) / hh;
        Long minute = (ms - day * dd - hour * hh) / mi;
        Long second = (ms - day * dd - hour * hh - minute * mi) / ss;
        Long milliSecond = ms - day * dd - hour * hh - minute * mi - second * ss;

        StringBuffer sb = new StringBuffer();
        if(day > 0) {
            sb.append(day+"天");
        }
        if(hour > 0) {
            sb.append(hour+"小时");
        }
        if(minute > 0) {
            sb.append(minute+"分");
        }
        if(second > 0) {
            sb.append(second+"秒");
        }
        if(milliSecond > 0) {
            sb.append(milliSecond+"毫秒");
        }
        return sb.toString();
    }

    /**
     * 获取当前时间
     */
    public static String getCurTimeWithYear(){
        long timeStamp = System.currentTimeMillis();  //获取当前时间戳,也可以是你自已给的一个随机的或是别人给你的时间戳(一定是long型的数据)
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//这个是你要转成后的时间的格式 yyyy-MM-dd
        String sd = sdf.format(new Date(timeStamp));   // 时间戳转换成时间
        return sd;
    }

}
